package com.shrct.businessprocess.project;

import com.shrct.businessprocess.organization.RCEmployee;
import com.shrct.businessprocess.organization.RCEnterprise;
import com.shrct.businessprocess.project.RCProject;
import com.shrct.businessprocess.project.RCProjectStatus;
import com.shrct.businessprocess.project.RCProjectType;
import com.shrct.businessprocess.project.impl.RCProjectCriteriaImpl;
import edu.fudan.mylang.pf.query.IPagedCriteria;
import edu.fudan.mylang.pf.query.QueryImplementation;

@QueryImplementation(implementBy = RCProjectCriteriaImpl.class)
public interface RCProjectCriteria extends IPagedCriteria<RCProject> {
  public abstract String getCode();
  
  public abstract RCProjectCriteria setCode(final String code);
  
  public abstract String getName();
  
  public abstract RCProjectCriteria setName(final String name);
  
  public abstract RCEmployee getSaler();
  
  public abstract RCProjectCriteria setSaler(final RCEmployee saler);
  
  public abstract RCEmployee getBusinessMan();
  
  public abstract RCProjectCriteria setBusinessMan(final RCEmployee businessMan);
  
  public abstract RCEnterprise getCustomer();
  
  public abstract RCProjectCriteria setCustomer(final RCEnterprise customer);
  
  public abstract RCEmployee getOwner();
  
  public abstract RCProjectCriteria setOwner(final RCEmployee owner);
  
  public abstract Boolean getActualCostDirtyFlag();
  
  public abstract RCProjectCriteria setActualCostDirtyFlag(final Boolean actualCostDirtyFlag);
  
  public abstract Boolean getIsPassed();
  
  public abstract RCProjectCriteria setIsPassed(final Boolean isPassed);
  
  public abstract Boolean getIsEarlyBuild();
  
  public abstract RCProjectCriteria setIsEarlyBuild(final Boolean isEarlyBuild);
  
  public abstract RCProjectType getType();
  
  public abstract RCProjectCriteria setType(final RCProjectType type);
  
  public abstract Boolean getShowActiveProjectOnly();
  
  public abstract RCProjectCriteria setShowActiveProjectOnly(final Boolean showActiveProjectOnly);
  
  public abstract RCProjectStatus getCreatingStatus();
  
  public abstract RCProjectCriteria setCreatingStatus(final RCProjectStatus creatingStatus);
  
  public abstract RCProjectStatus getCancelStatus();
  
  public abstract RCProjectCriteria setCancelStatus(final RCProjectStatus cancelStatus);
  
  public abstract void postInitialize();
}
